Goes on: Any property with keyframes
Keep your own eased keyframes and add a natural overshoot after each one, driven by the speed you arrive with.

// Overshoot — Coherent Motion Expressions · getcoherent.app/resources
// Keeps your keyframes and adds an overshoot after each one, sized by the speed it arrives with.
var amp = 0.05;   // how far it overshoots
var freq = 2.2;   // wobbles per second
var decay = 6;    // how fast it settles
var out = value, n = 0;
if (numKeys > 0) { n = nearestKey(time).index; if (key(n).time > time) n--; }
if (n > 0) {
  var t = time - key(n).time;
  if (t > 0 && t < 2) {
    var v = velocityAtTime(key(n).time - thisComp.frameDuration / 10);
    out = add(value, mul(v, amp * Math.sin(freq * t * 2 * Math.PI) / Math.exp(decay * t)));
  }
}
out
